home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 4_0 / DSAT_ANA / DSAT_SCA.C < prev    next >
Text File  |  1988-11-02  |  775b  |  37 lines

  1. /*
  2.     System error alert table analyzer
  3.     "DSAT Scan.c"
  4. */
  5.  
  6. #include "DSAT.h"
  7.  
  8. /* ----- Scan alert table ----------------------------------------------- */
  9.  
  10. int ScanTable(start, size, callback)
  11. register TABLE_PTR start;
  12. register long size;
  13. PFI callback;
  14. {
  15.     register DEFINITION_PTR p;
  16.     register int i, length;
  17.  
  18.     p = start->definition;
  19.     i = 0;
  20.     size -= 2;
  21.     while(size > 0) {
  22.         if ((length = p->u.length) & 1)
  23.             return -1;                /* Should be even */
  24.         length += 4;
  25.         if ((size -= length) < 0)
  26.             return -2;                /* Incoherence */
  27.         if (callback)
  28.             if ((* callback)(i, p))    /* Call back */
  29.                 return i;
  30.         p = (DEFINITION_PTR)((char *)p + length);
  31.         i++;
  32.     }
  33.     if (start->count != i+1)
  34.         return -3;                    /* Count does not match size */
  35.     return i;                        /* Return number of definitions */
  36. }
  37.